$(function(){
    $('#ajaxForm').submit(function(){
        buscar('');
        return false;
    });
    $('#tab .remover').live('click',function(){
        remover(this);
        return false;
    });
    $('.paginateButtons a').live('click',function(){
        buscar('&'+$(this).attr('href').split('?')[1]);
        return false;
    });
    if($('#ajaxForm').is('form')){
        buscar('');
    }
});

$(function(){
   var container = $("#validateErrors");
   var validator = $('#formUsuario').validate({
       errorContainer: container,
       errorLabelContainer: $("ul", container),
       wrapper: 'li',
       meta: "validate",
       rules: {
           nome: {
               required: true
           },
           login: {
               required: true,
               verificaCPF: true
           },
           senha: {
               required: true,
               minlength: 5
           },
           confirmaSenha: {
               required: true,
               minlength: 5,
               equalTo: "#senha"
           },
           'grupo.id': {
               required: true
           }
       },
       messages: {
           nome: {
               required: 'O campo NOME é um campo obrigatório.'
           },
           login: {
               required: 'O campo LOGIN é um campo obrigatório.',
               verificaCPF: 'O campo LOGIN deve ser um CPF válido.'
           },
           senha: {
               required: 'O campo SENHA é um campo obrigatório.',
               minlength: 'O campo SENHA deve possuir um tamanho maior que 5 caracteres.'
           },
           confirmaSenha: {
               required: 'O campo CONFIRMAÇÃO DE SENHA é um campo obrigatório.',
               minlength: 'O campo CONFIRMAÇÃO DE SENHA deve possuir um tamanho maior que 5 caracteres.',
               equalTo: 'O campo CONFIRMAÇÃO DE SENHA deve ser igual ao campo SENHA.'
           },
           'grupo.id': {
               required: 'O campo GRUPO é um campo obrigatório.'
           }
       }
    });
});

$(function(){
   var container = $("#validateErrors");
   var validator = $('#formUsuarioEdit').validate({
       errorContainer: container,
       errorLabelContainer: $("ul", container),
       wrapper: 'li',
       meta: "validate",
       rules: {
           nome: {
               required: true
           },
           login: {
               required: true
           },
           senha: {
               minlength: 5
           },
           confirmaSenha: {
               minlength: 5,
               equalTo: "#senha"
           },
           'grupo.id': {
               required: true
           }
       },
       messages: {
           nome: {
               required: 'O campo NOME é um campo obrigatório.'
           },
           login: {
               required: 'O campo LOGIN é um campo obrigatório.'
           },
           senha: {
               minlength: 'O campo SENHA deve possuir um tamanho maior que 5 caracteres.'
           },
           confirmaSenha: {
               minlength: 'O campo CONFIRMAÇÃO DE SENHA deve possuir um tamanho maior que 5 caracteres.',
               equalTo: 'O campo CONFIRMAÇÃO DE SENHA deve ser igual ao campo SENHA.'
           },
           'grupo.id': {
               required: 'O campo GRUPO é um campo obrigatório.'
           }
       }
    });
});


function move(sel1,sel2){
	var select1 = document.getElementById(sel1);
	var select2 = document.getElementById(sel2);
	var tam = select1.length;
	var listText;
	var listValue;

	if (tam > 0 && select1.selectedIndex != -1) {
			// envia 1 elemento do select1 para o 2
			for (var i = 0; i < tam; i++){
				if (select1.options[i].selected){
					listText = select1.options[i].text; //Nome Elemento
					listValue = select1.options[i].value; //Valor(value) do  Elemento
                    try{
                        select2.add(new Option(listText, listValue), null); // passa o item do select1 para o 2
                    }
                    catch(ex){
                        select2.add(new Option(listText, listValue));
                    }                    
					select1.remove(i); // elimina do select1
					i--;
				}
			}
	}
}

function seleciona(sel){
    var select1 = document.getElementById(sel);
    for (var i = 0; i < select1.length; i++){
        select1.options[i].selected = true;
    }
}

function carregando(divId){
    var elemento = $('#'+divId);
    elemento.html('<p style="margin-top: 9px;"><img src="../images/spinner.gif" /></p>');
    elemento.show();
}

function buscar(paramsPagination){
    var params = $("#ajaxForm").serialize()+paramsPagination;
    $.ajax({
        type: 'post',
        url: "dosearch",
        data: params,
        beforeSend: function(){
            carregando('updateMe');
        },
        success: function(data){
            $('#updateMe').html(data);
            $('#updateMe').show();
        }
     });
}


function remover(elem){
    if(!confirm('Deseja realmente apagar?')){
        return false;
    }
    $.ajax({
        type: 'post',
        url: "delete",
        data: 'id='+$(elem).attr('id'),
        beforeSend: function(){
            carregando('updateMe');
        },
        success: function(data){
            buscar('');
        }
     });
}